// 引入 http 模块用于创建服务器
const http = require('http');
// 引入 fs 模块用于文件操作
const fs = require('fs');
// 引入 path 模块用于处理文件路径
const path = require('path');

// 获取要读取的文件路径：如果有命令行参数，取第一个参数作为文件路径；否则默认读取自身文件
const filePath = process.argv[2] || __filename;

// 解析文件路径，确保是当前目录下的文件
const resolvedFilePath = path.resolve(filePath);

// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
  // 使用 fs.readFile 读取文件
  fs.readFile(resolvedFilePath, 'utf8', (err, data) => {
    if (err) {
      // 文件不存在或读取错误，返回错误信息
      res.writeHead(404, { 'Content-Type': 'text/plain' });
      res.end(`Error: File ${filePath} does not exist or cannot be read.`);
    } else {
      // 文件读取成功，返回文件内容
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end(data);
    }
  });
});

// 服务器监听 8081 端口
server.listen(8081, () => {
  console.log(`Server is running at http://localhost:8081`);
  console.log(`Reading file: ${resolvedFilePath}`);
});